pull: Add --per-object-fsync
authorColin Walters <walters@verbum.org>
Thu, 16 Jul 2020 21:13:36 +0000 (21:13 +0000)
committerColin Walters <walters@verbum.org>
Sat, 18 Jul 2020 14:59:01 +0000 (14:59 +0000)
commita615d35762be74b6407bfcbdde5387f84dd151cf
tree8f9ab26b0be8d7c50446c1501b932065be01242a
parent4752dd02cfddd3f7c102e7fdd4dcca9a1aeee1a1
pull: Add --per-object-fsync

This is the opposite of
https://github.com/ostreedev/ostree/issues/1184

Motivated by OpenShift seeing etcd performance issues during
OS updates: https://github.com/openshift/machine-config-operator/issues/1897

Basically, if we switch to invoking `fsync()` as we go, it makes
ostree performance worse (in my tests, 31s to write 2G versus 7s if we
delay sync) but it avoids *huge* outliers in `fsync()` time for etcd.
man/ostree.repo-config.xml
src/libostree/ostree-repo-commit.c
src/libostree/ostree-repo-private.h
src/libostree/ostree-repo-pull.c
src/libostree/ostree-repo.c
src/ostree/ot-builtin-pull-local.c
src/ostree/ot-builtin-pull.c
tests/pull-test.sh